//
// BonusManager.hh for nibbler in /home/lefebv_w//workspace/cpp/nibbler/googleCode
// 
// Made by damien lefebvre
// Login   <lefebv_w@epitech.net>
// 
// Started on  Thu Mar 21 17:53:01 2013 damien lefebvre
// Last update Sun Mar 24 18:09:12 2013 damien lefebvre
//

#ifndef		__BONUSMANAGER_HH__
#define		__BONUSMANAGER_HH__

#include	<iostream>
#include	<string>

#include	"header.hh"
#include	"IGraphicLibrary.hh"
#include	"BonusPart.hh"
#include	"Bonus5Part.hh"
#include	"Case.hh"
#include	"Snake.hh"
#include	"Score.hh"
#include	"BonusLife.hh"

class				BonusManager
{
private :
  Bonus5Part			m_5part;
  std::vector<BonusPart *>	m_parts;
  BonusLife			m_life;

public :
  BonusManager(void);
  ~BonusManager(void);
  void			move(t_frame frame, std::vector< std::vector<Case *> > const & map, Snake const & snake);
  bool			checkSnakePosition(t_frame frame, Score & score, std::vector< std::vector<Case *> > const & map, Snake & snake);
  void			draw(t_frame frame, IGraphicLibrary & graph) const;
  void			initialize(t_frame frame, std::vector< std::vector<Case *> > const & map, Snake const & snake);

private :
  void		addBonusPart(t_frame frame, std::vector< std::vector<Case *> > const & map, Snake const & snake);

};

#endif
